/*****************************************************************
**                大连理工大学 凌BUG战队
**                **生死有命，富贵在天**
**    没有什么难题是一个通宵解决不了的，如果有那就整两个！
**---------------------------------------------------------------
** 项目名称：   mxdemo_std_robot
** 日    期：   2021-04-15
** 作    者：   MasterWang
**---------------------------------------------------------------
** 文 件 名：   PID.h
** 文件说明：   PID控制算法
*****************************************************************/
#ifndef PID_H
#define PID_H

/*---------------------INCLUDES----------------------*/
#include "main.h"

/*---------------------STRUCTS-----------------------*/
//
typedef struct
{
	float Ref; //参考值(目标值)
	float FeedBack; //反馈值

	float Error; //误差
	float DError;
	float DDError;
	float PreError;
	float PreDError;
	float IntegralError;
	
	float Kp; //pid参数
	float Ki;
	float Kd;
	
	float MaxOutValue; //输出限幅
	float MinOutValue;
	
	float Out; //输出值

} PID;

/*---------------------DECLARES----------------------*/
extern PID pid_chassis[4], pid_gimbal[2], pid_ammobooster[3], pid_yaw, pid_pitch, pid_rotation, pid_gyrotemp;
; 
extern void InitPID(void);
extern void PIDSetPara(PID *pid, float kp, float ki, float kd);

extern float PIDIncControl(PID *pid, float fdb);
extern float PIDPosControl(PID *pid, float fdb);


#endif
